package reflect;

import java.lang.reflect.Method;
import java.util.Scanner;

public class ReflectDemo1 {
    public static void main(String[] args) throws ClassNotFoundException {
        /*Class cls1 = String.class;// 类名.class  获取String的类对象
        Class cls2 = ArrayList.class;
        Class cls3 = int.class;// int.class  获取int基本数据类型的类对象

        Class cls4 = Class.forName("java.lang.String");//指定类的完全限定名 获取对应的类对象
        Class cls5 = Class.forName("java.util.ArrayList");
        Class cls6 = Class.forName("int");
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个类名：");
        String name = scan.nextLine();
        Class cls7 = Class.forName(name);*/
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个类名：");
        String name = scan.nextLine();
        Class cls = Class.forName(name);//基于类名构造Class对象

        System.out.println("获取类的完全限定名"+cls.getName());
        System.out.println("获取类的简单名称"+cls.getSimpleName());

        Package pack = cls.getPackage();//获取包对象
        System.out.println("获取包名"+pack.getName());//java.lang

        Method[] methods = cls.getMethods();//获取所有public方法
        System.out.println("一共"+methods.length+"个方法");
        for (Method method:methods) {
            System.out.println(method.getName());//获取该类的所有方法名
        }
    }
}